package cn.fl.npspl.transform;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.npspl.vo.SplNpBscInfoVO;
import fl.spl.facade.npspl.dto.SplNpBscInfoDTO;

import java.util.ArrayList;
import java.util.List;


/**
 * @Description: 自然人经销商详细信息表 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据
 * @Description: VO转换数据变成DTO传递到服务端
 * @Description: VO不能在服务端出现
 */
public class SplNpBscInfoVOTransform {


    /**
     * DTO 转  VO
     *
     * @param dto SplNpBscInfoDTO
     * @return SplNpBscInfoVO
     */
    public static SplNpBscInfoVO toVO(SplNpBscInfoDTO dto) {
        SplNpBscInfoVO  vo = null;
        if (dto != null) {
            vo = new SplNpBscInfoVO();
            vo.setId(dto.getId());
            vo.setCstNm(dto.getCstNm());//自然人经销商名称
            vo.setCstTypCd(dto.getCstTypCd());//客户分类(CST0001，1：自然人，2：法人)
            vo.setCertTypCd(dto.getCertTypCd());//证件类型
            vo.setCertNo(dto.getCertNo());//自然人证件号(身份证)
            vo.setCertValidSDt(dto.getCertValidSDt());//证件有效期起始日期
            vo.setCertValidEDt(dto.getCertValidEDt());//证件有效期截止日期
            vo.setAge(dto.getAge());//年龄
            vo.setGenderCd(dto.getGenderCd());//性别
            vo.setBirthday(dto.getBirthday());//出生日期
            vo.setIdAddr(dto.getIdAddr());//户籍地址(身份证地址)
            vo.setMp1(dto.getMp1());//主手机号
            vo.setMp2(dto.getMp2());//副手机号
            vo.setPostAddr(dto.getPostAddr());//通讯地址
            vo.setMarStsCd(dto.getMarStsCd());//婚姻状况
            vo.setPayTypCd(dto.getPayTypCd());//还款方式
            vo.setDsCd(dto.getDsCd());//数据来源（SYS0001）
            vo.setCstStsCd(dto.getCstStsCd());//客户状态（CST0003，正式、意向）
            vo.setAudStsCd(dto.getAudStsCd());//审核状态
            vo.setPInstId(dto.getPInstId());//流程实例ID
            vo.setPNo(dto.getPNo());//流程号
            vo.setChlPerCd(dto.getChlPerCd());//渠道性质
            vo.setLvl(dto.getLvl());//评级
            vo.setScore(dto.getScore());//评分
            vo.setCstRem(dto.getCstRem());//备注信息
            vo.setIsDel(dto.getIsDel());//是否删除
            vo.setIsValid(dto.getIsValid());//是否有效
            
            vo.setBuOrgCds(dto.getBuOrgCds());// 所属事业部
            vo.setBusBrCdList(dto.getBusBrCdList());// 客车品牌
            vo.setCarBrCdList(dto.getCarBrCdList());// 乘用车品牌
            vo.setRgnPrCd(dto.getRgnPrCd());//区域-省
            vo.setRgnCyCd(dto.getRgnCyCd());//区域-市
            vo.setTkBrCdList(dto.getTkBrCdList());// 卡车品牌
            vo.setZipNo(dto.getZipNo());// 邮箱
            vo.setPrjTypCds(dto.getPrjTypCds());// 项目类型

            vo.setCrtTm(dto.getCrtTm());//创建时间
            vo.setCrtUsrId(dto.getCrtUsrId());//创建人
            vo.setMdfTm(dto.getMdfTm());//修改时间
            vo.setMdfUsrId(dto.getMdfUsrId());//修改人
            
            vo.setRiskRcCstId(dto.getRiskRcCstId());// 客户查征信记录ID
        }
        return vo;
    }

    /**
     * VO 转 DTO
     *
     * @param vo SplNpBscInfoVO
     * @return SplNpBscInfoDTO
     */
    public static SplNpBscInfoDTO toDTO(SplNpBscInfoVO vo) {
        SplNpBscInfoDTO dto = null;
        if (vo != null) {
            dto = new SplNpBscInfoDTO();
            dto.setId(vo.getId());
            dto.setCstNm(vo.getCstNm());//自然人经销商名称
            dto.setCstTypCd(vo.getCstTypCd());//客户分类(CST0001，1：自然人，2：法人)
            dto.setCertTypCd(vo.getCertTypCd());//证件类型
            dto.setCertNo(vo.getCertNo());//自然人证件号(身份证)
            dto.setCertValidSDt(vo.getCertValidSDt());//证件有效期起始日期
            dto.setCertValidEDt(vo.getCertValidEDt());//证件有效期截止日期
            dto.setAge(vo.getAge());//年龄
            dto.setGenderCd(vo.getGenderCd());//性别
            dto.setBirthday(vo.getBirthday());//出生日期
            dto.setIdAddr(vo.getIdAddr());//户籍地址(身份证地址)
            dto.setMp1(vo.getMp1());//主手机号
            dto.setMp2(vo.getMp2());//副手机号
            dto.setPostAddr(vo.getPostAddr());//通讯地址
            dto.setMarStsCd(vo.getMarStsCd());//婚姻状况
            dto.setPayTypCd(vo.getPayTypCd());//还款方式
            dto.setDsCd(vo.getDsCd());//数据来源（SYS0001）
            dto.setCstStsCd(vo.getCstStsCd());//客户状态（CST0003，正式、意向）
            dto.setAudStsCd(vo.getAudStsCd());//审核状态
            dto.setPInstId(vo.getPInstId());//流程实例ID
            dto.setPNo(vo.getPNo());//流程号
            dto.setChlPerCd(vo.getChlPerCd());//渠道性质
            dto.setLvl(vo.getLvl());//评级
            dto.setScore(vo.getScore());//评分
            dto.setCstRem(vo.getCstRem());//备注信息
            dto.setIsDel(vo.getIsDel());//是否删除
            dto.setIsValid(vo.getIsValid());//是否有效
            
            dto.setBuOrgCds(vo.getBuOrgCds());// 所属事业部
            dto.setBusBrCdList(vo.getBusBrCdList());// 客车品牌
            dto.setCarBrCdList(vo.getCarBrCdList());// 乘用车品牌
            dto.setRgnPrCd(vo.getRgnPrCd());//区域-省
            dto.setRgnCyCd(vo.getRgnCyCd());//区域-市
            dto.setTkBrCdList(vo.getTkBrCdList());// 卡车品牌
            dto.setZipNo(vo.getZipNo());// 邮编
            dto.setPrjTypCds(vo.getPrjTypCds());// 项目类型

            dto.setCrtTm(vo.getCrtTm());//创建时间
            dto.setCrtUsrId(vo.getCrtUsrId());//创建人
            dto.setMdfTm(vo.getMdfTm());//修改时间
            dto.setMdfUsrId(vo.getMdfUsrId());//修改人
            
            dto.setRiskRcCstId(vo.getRiskRcCstId());// 客户查征信记录ID
        }
        return dto;
    }

    /**
     * DTO集合 转 VO集合
     *
     * @param list List<SplNpBscInfoDTO>
     * @return List<SplNpBscInfoVO>
     */
    public static List<SplNpBscInfoVO> toVOList(List<SplNpBscInfoDTO> list) {
        List<SplNpBscInfoVO> voList = new ArrayList<SplNpBscInfoVO>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (SplNpBscInfoDTO dto : list) {
                voList.add(toVO(dto));
            }
        }
        return voList;
    }

    /**
     * VO集合 转 DTO集合
     *
     * @param list List<SplNpBscInfoVO>
     * @return List<SplNpBscInfoDTO>
     */
    public static List<SplNpBscInfoDTO> toDTOList(List<SplNpBscInfoVO> list) {
        List<SplNpBscInfoDTO> dtoList = new ArrayList<SplNpBscInfoDTO>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (SplNpBscInfoVO vo : list) {
                dtoList.add(toDTO(vo));
            }
        }
        return dtoList;
    }
}
